export default{
  namespace:'shopCart',
  state: JSON.parse(localStorage.getItem('shopCart')) || [],
  reducers:{
    //将商品添加到购物车的同步动作(redux的规范要求不修改原值，而是每次返回新对象)
    addCart(cart, action){
      const goods = action.payload; //获取商品
      const index = cart.findIndex(v =>v.goods.id==goods.id); //查找该商品是否已经存在于购物车中
      if(index>-1){
        //如果该商品已经存在，则数量+1
        const cartCopy = [...cart];  //从原购物车列表复制一份
        const itemCopy = {...cartCopy[index]}; //从复制的购物车中取出对应商品
        itemCopy.count +=1; //数量+1
        cartCopy.splice(index,1,itemCopy);//删除原商品，添加新商品
        return cartCopy; 
      }else{
        //如果该商品本不存在，则将 原商品列表+新商品 合并返回 组合成新的购物车列表
        return [...cart,{...goods,count:1}]
      }
    }
  }
}